package com.example.mysql.学习笔记.基础.约束;

public class 唯一约束 {
}
/**
 * UNIQUE**  **唯一约束**
 * 特点
 *
 * - 同一个表可以有多个唯一约束。
 * - 唯一约束可以是某一个列的值唯一，也可以多个列组合的值唯一。
 * - 唯一性约束允许列值为空。
 * - 在创建唯一约束的时候，如果不给唯一约束命名，就默认和列名相同。
 * - **MySQL会给唯一约束的列上默认创建一个唯一索引。**
 *
 * 复合唯一性约束
 *      alter table 表名称 add UNIQUE key(字段列表1,字段列表2);
 *      //当字段列表1和字段列表2都相等的时候失败   只要一个不一样都没事  如   (a,a)  (b,a)  (a,b)是可以成功的
 *      用在什么地方：  如选课   一个人可以选很多不相同的课程  课程也可以被多人选择
 *                              学号       课程
 *                             学生A       数学
 *                             学生A       语文
 *                             学生A       英语
 *                             学生B       数学
 *                             学生B       语文
 *                             学生B       英语
 *                   这样就可与把学号和课程做成复合唯一约束
 *  删除唯一约束
 * - 添加唯一性约束的列上也会自动创建唯一索引。
 * - 删除唯一约束只能通过删除唯一索引的方式删除。
 * - 删除时需要指定唯一索引名，唯一索引名就和唯一约束名一样。
 * - 如果创建唯一约束时未指定名称，如果是单列，就默认和列名相同；.
 *      如果是组合列，那么"默认和()中排在第一个的列名相同"。也可以自定义唯一性约束名。
 *
 * 删除字段
 *       ALTER TABLE 表名
 *       DROP COLUMN 字段名
 * 删除唯一约束
 *       ALTER TABLE 表名
 *       DROP INDEX 索引名字
 *
 * SHOW INDEX FROM 表名;   查看表索引
 */
